perm filename CUES.F4[PAX,LCS] blob sn#529268 filedate 1981-03-11 generic text, type T, neo UTF8
	SUBROUTINE CUES(JCUE)
	COMMON /PX/KPN(1)/XRN/RN(1)/PTR/KWDS(1)/RCLF/KK,CLEF,KW,ITEM
	1 /LLL/LLL /Q/Q(1)
 
	LQ=LLL
	DO 1 K=1,LQ
C BACK THROUGH ARRAY FROM LAST CUE FOUND.
	IF(CODEN(KPN,K,Q,J).NE.2)GO TO 1
C NEXT FOUND A REST
	IF(Q(J).LT.8)GO TO 1
C JUMP IF WDCNT IS TOO SMALL
	IF(Q(J+10).LT.100)GO TO 1
C P10=100+STAFF NUM. OF CUE DATA.  JUMP IF IMPROPER NUM.
	STF=Q(J+10)-100.
	POS=Q(J+3)
C POSITION OF THIS REST
	PLEFT=0
	PRGHT=1000
C POSITIONS FOR BARS TO LEFT AND RIGHT.  NEXT FIND PROPER BARS.
	DO 2 L=1,ITEM
	IF(CODEN(KWDS,L,RN,N).NE.4)GO TO 2
C FIND A BAR AND ITS POS.
	X=RN(N+3)
	IF(X.GT.POS)GO TO 3
C IS TO LEFT OR RIGHT OF REST?
	IF(X.GT.PLEFT)PLEFT=X
	GO TO 2
3	IF(X.LT.PRGHT)PRGHT=X
2	CONTINUE
C NOW FOUND BARS ON EACH SIDE OF REST.
	
	DO 4 L=1,ITEM
C NOW FIND NOTES WITHIN PROPER BAR AND ON PROPER STAFF
	R=CODEN(KWDS,L,RN,N)
	IF(RN(N+2).NE.STF)GO TO 4
	RS=RN(N+3)
C POS. OF ITEM.
	IF(RS.GT.PRGHT)GO TO 4
	IF(RS.LT.PLEFT)GO TO 4
C NOW BETWEEN BARS.
	IF(R.GT.6)GO TO 4
C USE NOTES,RESTS,CLEFS,SLURS,BEAMS
	RN(N+4)=RN(N+4)+100.
C MAKE ALL MINIS AND PUT ON STAFF 0
	RN(N+2)=0
	CALL QRN(N,KPN,L)
C GO PUT IT INTO Q ARRAY 
4	CONTINUE
	Q(J+3)=POS+1
C SHIFT THE WHOLE REST A BIT TO THE RIGHT.
	Q(J+10)=0
	Q(J+6)=-1
	Q(J+9)=0
	Q(J+8)=0
	Q(J+7)=0
C ZERO RHYTHM OF THE WHOLE REST AND WHOLE REST FLAG(P8)
1	CONTINUE
	END